home *** CD-ROM | disk | FTP | other *** search
/ Underground / Underground CD1.iso / other / how-to.pl / Bzip2-HOWTO.pl.txt < prev    next >
Encoding:
Text File  |  1998-09-17  |  21.3 KB  |  859 lines

  1.   Bzip2 Howto
  2.   David Fetter dfetter@best.com <mailto:dfetter@best.com>
  3.   v1.92 18 sierpnia 1998
  4.   Wersja polska: Krzysztof P. Jasiutowicz kpjas@priv.onet.pl
  5.   v0.99, 28 sierpnia 1998
  6.  
  7.  
  8.   Ten tekst wyja╢nia jak u┐ywaµ programu do kompresji bzip2. Lokalna
  9.   wersja tego tekstu w sgml-u jest dostΩpna tu tu <Bzip2-HOWTO.sgml>, a
  10.   "autor-ytatywna" pod tym adresem tu <http://www.best.com/~dfet¡
  11.   ter/Bzip2-HOWTO/Bzip2-HOWTO.sgml>.  Dokument ten zosta│ napisany w
  12.   standardzie ISO-8859-2.
  13.   ______________________________________________________________________
  14.  
  15.   Table of Contents
  16.  
  17.  
  18.   1. WstΩp
  19.  
  20.      1.1 Revision History
  21.         1.1.1 v1.92
  22.         1.1.2 v1.91
  23.         1.1.3 v1.9
  24.         1.1.4 v1.8
  25.         1.1.5 v1.7
  26.         1.1.6 v1.6
  27.         1.1.7 v1.5
  28.         1.1.8 v1.4
  29.         1.1.9 v1.3
  30.         1.1.10 v1.2
  31.         1.1.11 v1.1
  32.         1.1.12 v1.0
  33.  
  34.   2. Jak zdobyµ bzip2
  35.  
  36.      2.1 Bzip2-HOWTO w twoim jΩzyku
  37.      2.2 Jak zdobyµ prekompilowane binaria bzip2-a
  38.      2.3 Jak zdobyµ ╝r≤d│a bzip2-a
  39.      2.4 Kompilacja bzip2-a dla twojej maszyny
  40.  
  41.   3. U┐ywanie bzip2
  42.  
  43.   4. U┐ywanie bzip2 z tar-em
  44.  
  45.      4.1 Naj│atwiejsza do zrobienia:
  46.      4.2 úatwa do zrobienia, do╢µ │atwa w u┐yciu, nie trzba mieµ uprawnie± root-a:
  47.      4.3 Te┐ │atwa do zrobienia, ale wymaga dostΩpu jako root.
  48.  
  49.   5. U┐ywanie bzip2 z less-em
  50.  
  51.   6. U┐ywanie bzip2 z emacs-em
  52.  
  53.      6.1 Zmaina emacs-a dla wszystkich:
  54.      6.2 Zmiana emacs-a dla pojedy±czego u┐ytkownika:
  55.  
  56.   7. U┐ywanie bzip2-a z wu-ftpd
  57.  
  58.   8. U┐ycie bzip2 z grep-em
  59.  
  60.   9. U┐ywanie bzip2-a z Netscape-m pod X-ami.
  61.  
  62.   10. U┐ycie bzip2-a do rekompresji plik≤w skompresowanych w innych formatach
  63.  
  64.  
  65.  
  66.  
  67.   ______________________________________________________________________
  68.  
  69.   1.  WstΩp
  70.  
  71.   Bzip2 to superowy nowy algorytm kompresji danych.  Og≤lnie rzecz
  72.   bior▒c tworzy pliki, kt≤re s▒ 60-70% mniejsze od takich samych plik≤w
  73.   spakowanych gzip-em.
  74.  
  75.  
  76.   Ten dokument opisze kilka typowych zastosowa± bzip2-a.
  77.  
  78.  
  79.   Przysz│e  wersje tego dokumentu bΩd▒ dotyczy│y planowanej bzip2
  80.   library kt≤r▒ autor bzip2-a, Julian Seward
  81.   <mailto:Julian_Seward@muraroa.demon.co.uk> opisuje nastΩpuj▒co:
  82.  
  83.  
  84.   PracujΩ nad nastΩpn▒ wersj▒ bzip2-a, kt≤ra bΩdzie u┐ywaµ tego samego
  85.   formatu pliku .bz2; g│≤wn▒ nowo╢ci▒ bΩdzie biblioteka podobna do zlib
  86.   s│u┐▒ca do odczytywania i zapisu danych w tym formacie z poziomu programu.
  87.  
  88.  
  89.  
  90.  
  91.   Przysz│e  wersje tego dokumentu mog▒ tak┐e zawieraµ podsumowanie
  92.   dyskusji nad tym czy (i jak) bzip2 powinno byµ zastosowane w j▒drze
  93.   Linux-a.
  94.  
  95.  
  96.   1.1.  Revision History
  97.  
  98.   1.1.1.  v1.92
  99.  
  100.   Zaktualizowa│em rozdzia│ ``Pobieranie binari≤w bzip2'', doda│em
  101.   S.u.S.E.
  102.  
  103.  
  104.   1.1.2.  v1.91
  105.  
  106.   Poprawi│em b│▒d w pisowni i poprawi│em kilka idiom≤w shell-a w
  107.   ``rozdziale o u┐ywaniu bzip2-a z tar-em''.  PodziΩkowania dla
  108.   Alessandro Rubini za nie.
  109.  
  110.  
  111.   Poprawi│em aby narzΩdzie buzzit nie [to stomp] oryginalnego archiwum
  112.   bzip2-a.
  113.  
  114.  
  115.   Doda│em bgrep, narzΩdzie podobne do zgrep-a.
  116.  
  117.  
  118.   1.1.3.  v1.9
  119.  
  120.   Poprawi│em problem z gcc 2.7.*.  PodziΩkowanie dla  Ulrika Dickow-a za
  121.   wskazanie go.
  122.  
  123.  
  124.   Doda│em elegancki spos≤b Leonard-a Jean-Marc-a pos│ugiwania siΩ tar-
  125.   em.
  126.  
  127.  
  128.   Doda│em szwedzkie t│umaczenie Linus-a ├kerlund-a.
  129.  
  130.  
  131.   Poprawi│em rozdzia│ o wu-ftpd np. sugestii Arnaud Launay-a.
  132.  
  133.   Przenios│em t│umaczenia ich odpowiednich rozdzia│≤w.
  134.  
  135.  
  136.   1.1.4.  v1.8
  137.  
  138.   Wstawi│em buzzit i tar.diff do sgml-a tam gdzie ich miejsceg.
  139.   Poprawi│em interpunkcjΩ i formatowanie.  PodziΩkowania dla Arnaud
  140.   Launay za jego pomoc w poprawianiu mojej w│asnej wersji. :-)
  141.  
  142.  
  143.   Porzuci│em xv project na razie z powodu braku wiΩkszego
  144.   zainteresowania.
  145.  
  146.  
  147.   Wspomnia│em o tipsach w przysz│ych wersjach tego dokumentu.
  148.  
  149.  
  150.   1.1.5.  v1.7
  151.  
  152.   Doda│em aplikacjΩ buzzit.  Poprawi│em patch do na│o┐enia na gnu tar.
  153.  
  154.  
  155.   1.1.6.  v1.6
  156.  
  157.   Doda│em tip TenThumbs-a dot. Netscape.
  158.  
  159.  
  160.   Tak┐e zmieni│em lesspipe.sh dziΩki jego sugestii.  Powinien teraz
  161.   lepiej dzia│aµ.
  162.  
  163.  
  164.   1.1.7.  v1.5
  165.  
  166.   Doda│em francuskie t│umaczenie Arnaud Launay-a, i jego plik wu-ftpd.
  167.  
  168.  
  169.   1.1.8.  v1.4
  170.  
  171.   Doda│em japo±skie t│umaczenie Tetsu Isaji-ego.
  172.  
  173.  
  174.   1.1.9.  v1.3
  175.  
  176.   Doda│em plik Ulrik Dickow-a .emacs do emacs-a 19.30 lub wy┐szej
  177.   wersji.
  178.  
  179.  
  180.   (tak┐e poprawi│em patch jka-compr.el do emacs-a dziΩki jego sugestii.
  181.   Ojej!  Bzip2 nie ma jeszcze(?) flagi "append".)
  182.  
  183.  
  184.   1.1.10.  v1.2
  185.  
  186.   Zmienilem patch do emacs-a aby automagicznie rozpoznawa│ pliki .bz2.
  187.  
  188.  
  189.   1.1.11.  v1.1
  190.  
  191.   Doda│em patch dla emacs-a.
  192.  
  193.  
  194.   1.1.12.  v1.0
  195.  
  196.   Runda 1.
  197.  
  198.  
  199.   2.  Jak zdobyµ bzip2
  200.  
  201.   Home page Bzip2-a znajduje siΩ na Home site w Wielkiej Brytanii
  202.   <http://www.muraroa.demon.co.uk/>. Mirror site w U.S.A jest tu
  203.   <http://www.digistar.com/bzip2/index.html>.  Mo┐na te┐ znale╝µ go na
  204.   site-cie FTP Red Hat-a tu <ftp://ftp.redhat.com/pub/contrib>.
  205.  
  206.  
  207.   2.1.  Bzip2-HOWTO w twoim jΩzyku
  208.  
  209.   Osoby pos│uguj▒ce siΩ jΩzykiem francuskim mog▒ skierowaµ siΩ do
  210.   francuskich dokument≤w Arnaud Launay-a.  Wersja WWW jest tu
  211.   <http://www.freenix.fr/linux/HOWTO/mini/Bzip2.html>, a ftp mo┐na u┐yµ
  212.   tu <ftp://ftp.lip6.fr/pub/linux/french/docs/HOWTO/mini/Bzip2.gz> Z
  213.   Arnaud mo┐na skontaktowaµ siΩ poczt▒ elektroniczn▒ pod tym adresem
  214.   <mailto:zoro@mygale.org>
  215.  
  216.  
  217.   Osoby pos│uguj▒ce siΩ jΩzykiem japo±skim mog▒ skierowaµ siΩ do
  218.   japo±skich dokument≤w Tetsu Isaji tu <http://jf.gee.kyoto-
  219.   u.ac.jp/JF/JF.html>.  Z Isaji mo┐na skotaktowaµ siΩ na jego stronie
  220.   WWW <http://www2s.biglobe.ne.jp/~kaien/>, lub poczt▒ elektroniczn▒ pod
  221.   tym adresem. <mailto:isaji@mxu.meshnet.or.jp>
  222.  
  223.  
  224.   Osoby pos│uguj▒ce siΩ jΩzykiem szwedzkim mog▒ skierowaµ siΩ do
  225.   szwedzkich Linus-a ├kerlund-a tu
  226.   <http://user.tninet.se/~uxm165t/linux_doc.html>.  Z Linus-em mo┐na siΩ
  227.   skontaktowaµ poczt▒ elektroniczn▒ pod tym adresem.
  228.   <mailto:uxm165t@tninet.se>
  229.  
  230.  
  231.   2.2.  Jak zdobyµ prekompilowane binaria bzip2-a
  232.  
  233.   Zobacz Home site-y.
  234.  
  235.  
  236.   Binarium Debian Intel jest
  237.   <ftp://ftp.debian.org/debian/dists/stable/main/binary-
  238.   i386/utils/bzip2_0.1pl2-5.deb name=>>.
  239.  
  240.  
  241.   Binarium alpha Red Hat-a jest tu
  242.   <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/alpha/RedHat/RPMS/bzip2-0.1pl2-1.alpha.rpm>.
  243.  
  244.  
  245.   Binarium Intel Red Hat-a jest tu
  246.   <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/i386/RedHat/RPMS/bzip2-0.1pl2-1.i386.rpm>.
  247.  
  248.  
  249.   Binarium SPARC Red Hat-a jest tu
  250.   <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/sparc/RedHat/RPMS/bzip2-0.1pl2-1.sparc.rpm>.
  251.  
  252.  
  253.   Binarium Intel Slackware jest tu
  254.   <ftp://www.cdrom.com/pub/linux/slackware-3.5/slakware/a1/bzip2.tgz>.
  255.  
  256.  
  257.   Binarium Intel S.u.S.E jest tu <ftp://ftp.suse.com/pub/SuSE-
  258.   Linux/5.2/suse/ap1/bzip.rpm>.
  259.  
  260.   Wy┐ej wymienione s▒ tak┐e dostΩpne w analogicznuch miejscach r≤┐nych
  261.   lustrzanych site-≤w.
  262.  
  263.  
  264.  
  265.   2.3.  Jak zdobyµ ╝r≤d│a bzip2-a
  266.  
  267.   Znajduj▒ siΩ na oficjalnych site-ach (zobacz w ``Jak zdobyµ Bzip2''
  268.   gdzie, albo Red Hat ma je tu
  269.   <ftp://ftp.redhat.com/pub/contrib/SRPMS/bzip2-0.1pl2-1.src.rpm>).
  270.  
  271.  
  272.   2.4.  Kompilacja bzip2-a dla twojej maszyny
  273.  
  274.   Je╢li masz gcc 2.7.*, zmie± linijkΩ kt≤ra brzmi
  275.  
  276.  
  277.        CFLAGS = -O3 -fomit-frame-pointer -funroll-loops
  278.  
  279.  
  280.  
  281.  
  282.   na
  283.  
  284.  
  285.        CFLAGS = -O2 -fomit-frame-pointer
  286.  
  287.  
  288.  
  289.  
  290.   to jest, zamie± -O3 na -O2 i pomi± -funroll-loops. You may also wish
  291.   to add  any -m* flags (like -m486, for example) you use when compiling
  292.   kernels.
  293.  
  294.   UsuniΩcie -funroll-loops jest najistotniejsz▒ czΩ╢ci▒, poniewa┐ mo┐e
  295.   to spowodowaµ wiele gcc 2.7-≤w bΩdzie generowa│o nieprawid│owy kod, a
  296.   wszystkie gcc 2.7-y bΩd▒ wiΩkszy i wolniejszy kod wynikowy.  Dla
  297.   innych kompilator≤w (lcc, egcs, gcc 2.8.x) standartowe CFLAGS s▒ w
  298.   porz▒dku.
  299.  
  300.   Potem, po prostu make i zainstaluj wg README.
  301.  
  302.  
  303.   3.  U┐ywanie bzip2
  304.  
  305.   Przeczytaj Wspanaia│▒ StronΩ PodrΩcznika Systemowego :)
  306.  
  307.  
  308.   4.  U┐ywanie bzip2 z tar-em
  309.  
  310.   Poni┐ej s▒ opisane trzy metody u┐ywania bzip2 z tar-em, a mianowicie
  311.  
  312.   4.1.  Naj│atwiejsza do zrobienia:
  313.  
  314.   Ta metoda nie wyamga wcale ┐adnych zmian.  Aby od-tar-owaµ bzip2-owane
  315.   archiwum tar-owe, foo.tar.bz2 w aktualnym katalogu, wykonaj
  316.  
  317.  
  318.        /path/to/bzip2 -cd foo.tar.bz2 | tar xf -
  319.  
  320.  
  321.  
  322.  
  323.   To dzia│a, ale mo┐e byµ wnerwiaj▒ce je╢li wypisuje siΩ to zbyt czΩsto.
  324.  
  325.  
  326.   4.2.  úatwa do zrobienia, do╢µ │atwa w u┐yciu, nie trzba mieµ
  327.   uprawnie± root-a:
  328.  
  329.   DziΩki dla Leonard Jean-Marc <mailto:leonard@sct1.is.belgacom.be> za
  330.   ten tip.  DziΩki tak┐e dla Alessandro Rubini
  331.   <mailto:rubini@morgana.systemy.it> za wprawadzenie r≤┐nic
  332.   specyficznych dla csh.
  333.  
  334.  
  335.   W swoim .bashrc, mo┐esz wstawiµ tak▒ linijkΩ :
  336.  
  337.  
  338.        alias btar='tar --use-compress-program /usr/local/bin/bzip2 '
  339.  
  340.  
  341.  
  342.  
  343.  
  344.   W .tcshrc, lub .cshrc, analogiczna linijka wygl▒da tak:
  345.  
  346.  
  347.        alias btar 'tar --use-compress-program /usr/local/bin/bzip2'
  348.  
  349.  
  350.  
  351.  
  352.  
  353.   4.3.  Te┐ │atwa do zrobienia, ale wymaga dostΩpu jako root.
  354.  
  355.   Na│≤┐ poni┐szy patch na gnu tar 1.12 w nastΩpuj▒cy spos≤b:
  356.  
  357.  
  358.        cd tar-1.12/src; patch < /path/to/tar.diff
  359.  
  360.  
  361.  
  362.  
  363.   skompiluj go, i zainstaluj go, i wszystko ju┐ gotowe do dzia│ania.
  364.   Upewnij siΩ ze zar≤wno tar jak i  bzip2 s▒ w twojej $PATH poprzez
  365.   "which tar" i "which bzip2." Aby u┐yµ nowego tar-a, po prostu zr≤b
  366.  
  367.  
  368.         tar xyf foo.tar.bz2
  369.  
  370.  
  371.  
  372.  
  373.   aby zdekompresowaµ plik.
  374.  
  375.   Aby utworzyµ nowe archiwum, podobnie zr≤b:
  376.  
  377.  
  378.         tar cyf foo.tar.bz2 file1 file2 file3...directory1 directory2...
  379.  
  380.  
  381.  
  382.  
  383.   A oto patch:
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.   *** tar.c       Thu Jun 11 00:09:23 1998
  398.   --- tar.c.new   Thu Jun 11 00:14:24 1998
  399.   ***************
  400.   *** 196,201 ****
  401.   --- 196,203 ----
  402.       {"block-number", no_argument, NULL, 'R'},
  403.       {"block-size", required_argument, NULL, OBSOLETE_BLOCKING_FACTOR},
  404.       {"blocking-factor", required_argument, NULL, 'b'},
  405.   +   {"bzip2", required_argument, NULL, 'y'},
  406.   +   {"bunzip2", required_argument, NULL, 'y'},
  407.       {"catenate", no_argument, NULL, 'A'},
  408.       {"checkpoint", no_argument, _option, 1},
  409.       {"compare", no_argument, NULL, 'd'},
  410.   ***************
  411.   *** 372,377 ****
  412.   --- 374,380 ----
  413.                   PATTERN                at list/extract time, a globbing PATTERN\n\
  414.       -o, --old-archive, --portability   write a V7 format archive\n\
  415.           --posix                        write a POSIX conformant archive\n\
  416.   +   -y, --bzip2, --bunzip2             filter the archive through bzip2\n\
  417.       -z, --gzip, --ungzip               filter the archive through gzip\n\
  418.       -Z, --compress, --uncompress       filter the archive through compress\n\
  419.           --use-compress-program=PROG    filter through PROG (must accept -d)\n"),
  420.   ***************
  421.   *** 448,454 ****
  422.        Y  per-block gzip compression */
  423.  
  424.     #define OPTION_STRING \
  425.   !   "-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hiklmoprstuvwxz"
  426.  
  427.     static void
  428.     set_subcommand_option (enum subcommand subcommand)
  429.   --- 451,457 ----
  430.        Y  per-block gzip compression */
  431.  
  432.     #define OPTION_STRING \
  433.   !   "-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hiklmoprstuvwxyz"
  434.  
  435.     static void
  436.     set_subcommand_option (enum subcommand subcommand)
  437.   ***************
  438.   *** 805,810 ****
  439.   --- 808,817 ----
  440.           case 'X':
  441.           exclude_option = 1;
  442.           add_exclude_file (optarg);
  443.   +       break;
  444.   +
  445.   +       case 'y':
  446.   +       set_use_compress_program_option ("bzip2");
  447.           break;
  448.  
  449.           case 'z':
  450.  
  451.  
  452.  
  453.  
  454.   5.  U┐ywanie bzip2 z less-em
  455.  
  456.   Aby dekompresowaµ pliki bzip2 w locie, tj. aby m≤c u┐ywaµ less-a do
  457.   czytania ich bez wcze╢niejszego bunzip2-owania ich, nale┐y zrobiµ
  458.   lesspipe.sh (man less) w ten spos≤b:
  459.  
  460.  
  461.  
  462.  
  463.   #!/bin/sh
  464.   # To jest preprocessor dla 'less-a'.  Jest on u┐ywany, gdy ta zmienna
  465.   # ╢rodowiskowa jest ustawiona:   LESSOPEN="|lesspipe.sh %s"
  466.  
  467.     case "$1" in
  468.     *.tar) tar tvvf $1 2>/dev/null ;; # Ogl▒daj zawarto╢µ r≤┐nych plik≤w tar-owych
  469.     *.tgz) tar tzvvf $1 2>/dev/null ;;
  470.   # Dzia│a dla niezmodyfikowanej wersji tar-a
  471.     *.tar.bz2) bzip2 -cd $1 $1 2>/dev/null | tar tzvvf - ;;
  472.   # Dzia│a z spatchowan▒ wersj▒ tar-a
  473.   # *.tar.bz2) tyvvf $1 2>/dev/null ;;
  474.     *.tar.gz) tar tzvvf $1 2>/dev/null ;;
  475.     *.tar.Z) tar tzvvf $1 2>/dev/null ;;
  476.     *.tar.z) tar tzvvf $1 2>/dev/null ;;
  477.     *.bz2) bzip2 -dc $1  2>/dev/null ;; # Ogl▒daj spakowane pliki
  478.     *.Z) gzip -dc $1  2>/dev/null ;;
  479.     *.z) gzip -dc $1  2>/dev/null ;;
  480.     *.gz) gzip -dc $1  2>/dev/null ;;
  481.     *.zip) unzip -l $1 2>/dev/null ;;
  482.     *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=`file -L $1` ; # groff src
  483.       FILE=`echo $FILE | cut -d ' ' -f 2`
  484.       if [ "$FILE" = "troff" ]; then
  485.         groff -s -p -t -e -Tascii -mandoc $1
  486.       fi ;;
  487.     *) cat $1 2>/dev/null ;;
  488.   #  *) FILE=`file -L $1` ; # Check to see if binary, if so -- view with 'strings'
  489.   #    FILE1=`echo $FILE | cut -d ' ' -f 2`
  490.   #    FILE2=`echo $FILE | cut -d ' ' -f 3`
  491.   #    if [ "$FILE1" = "Linux/i386" -o "$FILE2" = "Linux/i386" \
  492.   #         -o "$FILE1" = "ELF" -o "$FILE2" = "ELF" ]; then
  493.   #      strings $1
  494.   #    fi ;;
  495.     esac
  496.  
  497.  
  498.  
  499.  
  500.   6.  U┐ywanie bzip2 z emacs-em
  501.  
  502.   6.1.  Zmaina emacs-a dla wszystkich:
  503.  
  504.   Napisalem ten patch do jka-compr.el kt≤ry dodaje bzip2 do auto-
  505.   compression-mode.
  506.  
  507.   Disclaimer: Spawdzi│em go tylko z emacs-20.2, ale nie mam powod≤w by
  508.   s▒dziµ, ┐e podobne postΩpowanie nie bΩdzie dzia│aµ z innymi wersjami.
  509.  
  510.   By go u┐yµ,
  511.  
  512.   1. Przejd╝ do katalogu ╝r≤d│owego emacs-20.2/lisp (tam gdzie go
  513.      roztarowa│e╢)
  514.  
  515.   2. Wstaw ten patch do pliku  jka-compr.el.diff ( powinien byµ sam w
  516.      tym pliku ;).
  517.  
  518.   3. Wykonaj
  519.  
  520.  
  521.         patch < jka-compr.el.diff
  522.  
  523.  
  524.  
  525.  
  526.   4. Wystartuj emacs-a, i wykonaj
  527.  
  528.  
  529.    M-x byte-compile-file jka-compr.el
  530.  
  531.  
  532.  
  533.  
  534.   5. Wyjd╝ z emacs-a.
  535.  
  536.   6. Przenie╢ pierwotny jka-compr.elc w bezpieczne miejsce gdyby by│y
  537.      bug-i.
  538.  
  539.   7. Zast▒p go new jka-compr.elc.
  540.  
  541.   8. Baw siΩ dobrze!
  542.  
  543.  
  544.      --- jka-compr.el        Sat Jul 26 17:02:39 1997
  545.      +++ jka-compr.el.new    Thu Feb  5 17:44:35 1998
  546.      @@ -44,7 +44,7 @@
  547.       ;; The variable, jka-compr-compression-info-list can be used to
  548.       ;; customize jka-compr to work with other compression programs.
  549.       ;; The default value of this variable allows jka-compr to work with
  550.      -;; Unix compress and gzip.
  551.      +;; Unix compress and gzip.  David Fetter doda│ bzip2 support :)
  552.       ;;
  553.       ;; If you are concerned about the stderr output of gzip and other
  554.       ;; compression/decompression programs showing up in your buffers, you
  555.      @@ -121,7 +121,9 @@
  556.  
  557.  
  558.       ;;; I have this defined so that .Z files are assumed to be in unix
  559.      -;;; compress format; and .gz files, in gzip format.
  560.      +;;; compress format; and .gz files, in gzip format, and .bz2 files,
  561.      +;;; in the snappy new bzip2 format from http://www.muraroa.demon.co.uk.
  562.      +;;; Keep up the good work, people!
  563.       (defcustom jka-compr-compression-info-list
  564.         ;;[regexp
  565.         ;; compr-message  compr-prog  compr-args
  566.      @@ -131,6 +133,10 @@
  567.            "compressing"    "compress"     ("-c")
  568.            "uncompressing"  "uncompress"   ("-c")
  569.            nil t]
  570.      +    ["\\.bz2\\'"
  571.      +     "bzip2ing"        "bzip2"         ("")
  572.      +     "bunzip2ing"      "bzip2"         ("-d")
  573.      +     nil t]
  574.           ["\\.tgz\\'"
  575.            "zipping"        "gzip"         ("-c" "-q")
  576.            "unzipping"      "gzip"         ("-c" "-q" "-d")
  577.  
  578.  
  579.  
  580.  
  581.   6.2.  Zmiana emacs-a dla pojedy±czego u┐ytkownika:
  582.  
  583.   PodziΩkowania za to male┐▒ siΩ Ulrik-owi Dickow-owi, ukd@kampsax.dk
  584.   <mailto:ukdATkampsax.dk>, programi╢cie systemowemu w Kampsax
  585.   Technology:
  586.  
  587.   Aby m≤c u┐ywaµ bzip2 automatycznie gdy nie jeste╢ sysadmin-em, po
  588.   prostu dodaj co nastΩpuje do swojego pliku .emacs.
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.   ;; Automatic (un)compression on loading/saving files (gzip(1) and similar)
  596.   ;; We start it in the off state, so that bzip2(1) support can be added.
  597.   ;; Code thrown together by Ulrik Dickow for ~/.emacs with Emacs 19.34.
  598.   ;; Should work with many older and newer Emacsen too.  No warranty though.
  599.   ;;
  600.   (if (fboundp 'auto-compression-mode) ; Emacs 19.30+
  601.       (auto-compression-mode 0)
  602.     (require 'jka-compr)
  603.     (toggle-auto-compression 0))
  604.   ;; Now add bzip2 support and turn auto compression back on.
  605.   (add-to-list 'jka-compr-compression-info-list
  606.                ["\\.bz2\\(~\\|\\.~[0-9]+~\\)?\\'"
  607.                 "zipping"        "bzip2"         ()
  608.                 "unzipping"      "bzip2"         ("-d")
  609.                 nil t])
  610.   (toggle-auto-compression 1 t)
  611.  
  612.  
  613.  
  614.  
  615.   7.  U┐ywanie bzip2-a z wu-ftpd
  616.  
  617.   PodziΩkowania dla Arnaud Launay za tego oszczΩdzacza bandwidth-u.  To
  618.   co nastΩpuje powinno siΩ znale╝µ w /etc/ftpconversions aby wykonywaµ
  619.   kompresjΩ i dekompresjΩ on-the-fly za pomoc▒ bzip2. Upewnij siΩ, ┐e
  620.   ╢cie┐ki takie jak (like /bin/compress) s▒ poprawne.
  621.  
  622.  
  623.    :.Z:  :  :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
  624.    :   : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS
  625.    :.gz: :  :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP
  626.    :   : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP
  627.    :.bz2: :  :/bin/bzip2 -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:BUNZIP2
  628.    :   : :.bz2:/bin/bzip2 -9 -c %s:T_REG:O_COMPRESS:BZIP2
  629.    :   : :.tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR
  630.    :   : :.tar.Z:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
  631.    :   : :.tar.gz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP
  632.    :   : :.tar.bz2:/bin/tar -c -y -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+BZIP2
  633.  
  634.  
  635.  
  636.  
  637.   8.  U┐ycie bzip2 z grep-em
  638.  
  639.   Ten u┐ytek, kt≤ry nazwa│em bgrep, jest niewielk▒ modyfikacj▒ zgrep
  640.   kt≤ry jest dostarczany z Linux-em. Mo┐na go u┐ywaµ do grep-owania
  641.   plik≤w bez bunzip2-owania ich najpierw.
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.   #!/bin/sh
  662.  
  663.   # bgrep -- a wrapper around a grep program that decompresses files as needed
  664.   PATH="/usr/bin:$PATH"; export PATH
  665.  
  666.   prog=`echo $0 | sed 's|.*/||'`
  667.   case "$prog" in
  668.           *egrep) grep=${EGREP-egrep}     ;;
  669.           *fgrep) grep=${FGREP-fgrep}     ;;
  670.           *)      grep=${GREP-grep}       ;;
  671.   esac
  672.   pat=""
  673.   while test $# -ne 0; do
  674.     case "$1" in
  675.     -e | -f) opt="$opt $1"; shift; pat="$1"
  676.              if test "$grep" = grep; then  # grep is buggy with -e on SVR4
  677.                grep=egrep
  678.              fi;;
  679.     -*)      opt="$opt $1";;
  680.      *)      if test -z "$pat"; then
  681.                pat="$1"
  682.              else
  683.                break;
  684.              fi;;
  685.     esac
  686.     shift
  687.   done
  688.  
  689.   if test -z "$pat"; then
  690.     echo "grep through bzip2 files"
  691.     echo "usage: $prog [grep_options] pattern [files]"
  692.     exit 1
  693.   fi
  694.  
  695.   list=0
  696.   silent=0
  697.   op=`echo "$opt" | sed -e 's/ //g' -e 's/-//g'`
  698.   case "$op" in
  699.     *l*) list=1
  700.   esac
  701.   case "$op" in
  702.     *h*) silent=1
  703.   esac
  704.  
  705.   if test $# -eq 0; then
  706.     bzip2 -cd | $grep $opt "$pat"
  707.     exit $?
  708.   fi
  709.  
  710.   res=0
  711.   for i do
  712.     if test $list -eq 1; then
  713.       bzip2 -cdfq "$i" | $grep $opt "$pat" > /dev/null && echo $i
  714.       r=$?
  715.     elif test $# -eq 1 -o $silent -eq 1; then
  716.       bzip2 -cd "$i" | $grep $opt "$pat"
  717.       r=$?
  718.     else
  719.       bzip2 -cd "$i" | $grep $opt "$pat" | sed "s|^|${i}:|"
  720.       r=$?
  721.     fi
  722.     test "$r" -ne 0 && res="$r"
  723.   done
  724.   exit $res
  725.  
  726.  
  727.   9.  U┐ywanie bzip2-a z Netscape-m pod X-ami.
  728.  
  729.   tenthumbs@cybernex.net pisze:
  730.  
  731.  
  732.        Znalaz│em spos≤b aby spowodowaµ ┐eby Linux-owy Netscape u┐ywa│ bzip2-a
  733.        do Content-Encoding tak jak u┐ywa gzip-a. Dodaj to do $HOME/.Xdefaults
  734.        lub $HOME/.Xresources
  735.  
  736.        U┐ywam opcji -s poniewa┐ wolΩ straciµ trochΩ z szybko╢ci dekompresji
  737.        na korzy╢µ zu┐ycia RAM-u. Mo┐n pomin▒µ t▒ opcjΩ, je╢li kto╢ tak chce.
  738.  
  739.  
  740.  
  741.   Netscape*encodingFilters:      \
  742.           x-compress :  : .Z     : uncompress -c  \n\
  743.           compress   :  : .Z     : uncompress -c  \n\
  744.           x-gzip     :  : .z,.gz : gzip -cdq      \n\
  745.           gzip       :  : .z,.gz : gzip -cdq      \n\
  746.           x-bzip2    :  : .bz2   : bzip2 -ds \n
  747.  
  748.  
  749.  
  750.  
  751.   10.  U┐ycie bzip2-a do rekompresji plik≤w skompresowanych w innych
  752.   formatach
  753.  
  754.   Ten program w perl-u pobiera plik skompresowany w innych formatach
  755.   (.tar.gz, .tgz. .tar.Z, and .Z ) i przepakowuje je dla lepszej
  756.   kompresji.  Kod ┐r≤d│owy w perl-u ma wiele porz▒dnej dokumentacji
  757.   dotycz▒cej tego co robi i jak to robi co robi.
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.   #!/usr/bin/perl -w
  794.  
  795.   #######################################################
  796.   #                                                     #
  797.   # Ten program pobiera pliki skompresowane programami  #
  798.   # compress i gzip w aktualnym katalogu i zamienia je  #
  799.   # do formatu bzip2. Obs│uguje rozdszerzenie .tgz w    #
  800.   # prawid│owy spos≤b, tworz▒c plik .tar.bz2.           #
  801.   #                                                     #
  802.   #######################################################
  803.   $counter = 0;
  804.   $saved_bytes = 0;
  805.   $totals_file = '/tmp/machine_bzip2_total';
  806.   $machine_bzip2_total = 0;
  807.  
  808.   while(<*[Zz]>) {
  809.       next if /^bzip2-0.1pl2.tar.gz$/;
  810.       push @files, $_;
  811.   }
  812.   $total = scalar(@files);
  813.  
  814.   foreach (@files) {
  815.       if (/tgz$/) {
  816.           ($new=$_) =~ s/tgz$/tar.bz2/;
  817.       } else {
  818.           ($new=$_) =~ s/\.g?z$/.bz2/i;
  819.       }
  820.       $orig_size = (stat $_)[7];
  821.       ++$counter;
  822.       print "Repacking $_ ($counter/$total)...\n";
  823.       if ((system "gzip -cd $_ |bzip2 >$new") == 0) {
  824.           $new_size = (stat $new)[7];
  825.           $factor = int(100*$new_size/$orig_size+.5);
  826.           $saved_bytes += $orig_size-$new_size;
  827.           print "$new is about $factor% of the size of $_. :",($factor<100)?')':'(',"\n";
  828.           unlink $_;
  829.       } else {
  830.           print "Arrgghh!  Something happened to $_: $!\n";
  831.       }
  832.   }
  833.   print "You've ",
  834.         ($saved_bytes>=0)?"saved":"lost",
  835.         " $saved_bytes bytes of storage space :",
  836.          ($saved_bytes>=0)?")":"(", "\n";
  837.  
  838.   unless (-e '/tmp/machine_bzip2_total') {
  839.       system ('echo "0" >/tmp/machine_bzip2_total');
  840.       system ('chmod', '0666', '/tmp/machine_bzip2_total');
  841.   }
  842.  
  843.  
  844.   chomp($machine_bzip2_total = `cat $totals_file`);
  845.   open TOTAL, ">$totals_file"
  846.        or die "Can't open system-wide total: $!";
  847.   $machine_bzip2_total += $saved_bytes;
  848.   print TOTAL $machine_bzip2_total;
  849.   close TOTAL;
  850.  
  851.   print "That's a machine-wide total of ",`cat $totals_file`," bytes saved.\n";
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.